package us.proyecto.canarios.actions.admin;

import java.util.Iterator;
import java.util.List;

import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Begin;
import org.jboss.seam.annotations.FlushModeType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.datamodel.DataModel;
import org.jboss.seam.annotations.datamodel.DataModelSelection;
import org.jboss.seam.log.Log;

import us.proyecto.canarios.dao.DiccionarioDAO;
import us.proyecto.canarios.domain.Premio;
import us.proyecto.canarios.domain.Tipo;

@Name("mantPremios")
@Scope(ScopeType.SESSION)
public class MantPremiosAction {

	 @Logger
	 Log log;

	 @In(create = true)
	 private DiccionarioDAO diccionariosDAO;

	 @DataModel("listaPremios")
	 private List<Premio> listaPremios;
	 @DataModelSelection("listaPremios")
	 private Premio premioSel;

	 private boolean seleccionado = false;

	 private boolean nuevo = false;

	 private Premio premio;

	 public void editar(){
		 seleccionado = true;

		 premio = premioSel;


	 }

	 public void eliminar() {
		 if(premioSel == premio) {
			 premio = new Premio();
			 seleccionado = false;

		 }
		 listaPremios.remove(premioSel);

	 }

	 public void anadir(){
		 listaPremios.add(premio);
		 premio = new Premio();
		 seleccionado = false;
	 }

	 public void cancelar(){
		 seleccionado = false;
		 premio = new Premio();
	 }

	 public void guardar(){

		 Iterator<Premio> itTipo = listaPremios.iterator();
		 while(itTipo.hasNext()) {
			 Premio tipo = itTipo.next();
			 diccionariosDAO.guardarPremio(tipo);
		 }
	 }

	 @Begin(join = true, flushMode=FlushModeType.MANUAL)
	 public void gestion(){
		 seleccionado = false;
		 premio = new Premio();
		 listaPremios = diccionariosDAO.getListaPremios();
	 }

	public List<Premio> getListaPremios() {
		return listaPremios;
	}

	public void setListaPremios(List<Premio> listaPremios) {
		this.listaPremios = listaPremios;
	}

	public Premio getPremioSel() {
		return premioSel;
	}

	public void setPremioSel(Premio premioSel) {
		this.premioSel = premioSel;
	}

	public boolean isSeleccionado() {
		return seleccionado;
	}

	public void setSeleccionado(boolean seleccionado) {
		this.seleccionado = seleccionado;
	}

	public boolean isNuevo() {
		return nuevo;
	}

	public void setNuevo(boolean nuevo) {
		this.nuevo = nuevo;
	}

	public Premio getPremio() {
		return premio;
	}

	public void setPremio(Premio premio) {
		this.premio = premio;
	}
	 
	public void vacio(){
		
	}
	 

}
